﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using MasterDetailTemplate.Models;

namespace MasterDetailTemplate.Services
{
    /// <summary>
    /// 远程事件存储。
    /// </summary>
    public interface IRemoteEventStorage : INotifyStatusChanged
    {
        /// <summary>
        /// 获得所有事件。
        /// </summary>
        Task<IList<Event>> GetEventsAsync();

        /// <summary>
        /// 一次性保存所有事件。
        /// </summary>
        /// <param name="events">所有的事件。</param>
        Task SaveEventsAsync(IList<Event> events);

        /// <summary>
        /// 登录。
        /// </summary>
        Task<bool> SignInAsync();

        /// <summary>
        /// 注销。
        /// </summary>
        Task SignOutAsync();

        /// <summary>
        /// 是否已经登录
        /// </summary>
        Task<bool> IsSignedInAsync();


    }
}
